﻿using System;
using System.Collections;
using System.Data.SqlClient;
using Grishko.DataTier.MetaInfo;
using Grishko.SerilizeTools;

namespace Grishko.DataTier
{

    
    public interface ITreeDictionaryItemValue
    { 
    }

    /// <summary>
    /// Интерфейс бизнес объекта
    /// </summary>
    public  interface IEntity 
    {
        string TagName { get; }
         void Save();
         void Save(string ConnectionString);
         void SaveWitchChild();
        

         void Update();
         void UpdateWitchChild();

         void Load();
         void PropertyLoad();         
        /// <summary>
        /// Пометить объект как удаленный. 
        /// </summary>
        void DestroyMySelf();
         
    }   

    public interface ISqlSignature 
    {
        [EntityNonSerialized]
        String SaveProcedure
        {
            get;
        }
        
        [EntityNonSerialized]
        String DeleteProcedure
        {
            get;
        }
        
        [EntityNonSerialized]
        String LoadProcedure
        {
            get;
        }
        String ImAsXML
        {
            get;
        }
        SrchInfo SrchInfoVal
        {
            get;
        }
    }
    public interface IFileSignature
    {        
        String Directory
        {
            get;
        }
        String FileName
        {
            get;
        }        
    }

    public interface ISqlSignatureExt : ISqlSignature
     {
         SqlCommand GetCommand(string SqlCommand);
     }

}
